package com.huirui.server.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.huirui.server.pojo.entity.Category;
import com.huirui.server.pojo.vo.CategoryVo;
import com.huirui.server.pojo.vo.ProductBriefInfoVo;
import com.huirui.server.pojo.vo.TopCategoryVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author yujun
 * @description 针对表【t_category(商品分类表)】的数据库操作Mapper
 * @createDate 2025-09-13 11:22:24
 * @Entity com.huirui.server.pojo.entity.Category
 */
@Mapper
public interface CategoryMapper extends BaseMapper<Category> {


    List<CategoryVo> getCategoryList();


    List<Category> selectAll();

    List<TopCategoryVo> listTopWithoutRankingCategories();

    IPage<ProductBriefInfoVo> listProductListByCategoryId(
            @Param("categoryIds") List<Long> categoryIds,
            @Param("orderBy") Integer orderBy,
            @Param("priceOrder") Integer priceOrder,
            @Param("iPage") IPage<ProductBriefInfoVo> iPage);

    IPage<ProductBriefInfoVo> listProductListByCategoryIdAndSaleCount(@Param("categoryIds") List<Long> categoryIds, IPage<ProductBriefInfoVo> iPage);

    IPage<ProductBriefInfoVo> listProductListByCategoryIdOrderByPriceAsc(List<Long> categoryIds, IPage<ProductBriefInfoVo> iPage);

    IPage<ProductBriefInfoVo> listProductListByCategoryIdOrderByPriceDesc(List<Long> categoryIds, IPage<ProductBriefInfoVo> iPage);
}




